Organizations increasingly generate and use large amounts of data. In the course of managing its data, an organization may wish to back up this data while maintaining uninterrupted access to the same.
Creating a consistent backup may involve backing up all data within a backup reflect the state of the backed-up data at a given point in time. In order to provide a consistent backup of a volume of data (as well as uninterrupted access to write to the volume), a backup system may utilize a space-saving snapshot. Traditional technologies may create a space-saving snapshot of a volume by making a copy of a block of data on the volume whenever that block of data is about to be overwritten. Attempts to read from the snapshot may then be either directly fulfilled from the volume (if the corresponding block on the volume has not changed since the snapshot) or fulfilled from a copied block of data created for the snapshot.
In order to locate copied blocks of data when fulfilling read requests for a snapshot, traditional technologies may maintain a map that identifies the location where each copied block of data is stored. Furthermore, traditional technologies may maintain a map of which blocks of data have been copied for the snapshot. Unfortunately, maintaining such maps may degrade system performance, particularly in the context of a cluster. For example, if a cluster of systems have access to write to a volume of the snapshot and/or need access to the snapshot, then synchronizing the maps across various nodes within the cluster may increase I/O latency and network traffic. Accordingly, the instant disclosure addresses a need for efficiently creating snapshots.